lib/commit: Only auto-update summary if refs were written
authorJonathan Lebon <jonathan@jlebon.com>
Mon, 30 Jul 2018 15:11:34 +0000 (11:11 -0400)
committerAtomic Bot <atomic-devel@projectatomic.io>
Wed, 1 Aug 2018 19:59:07 +0000 (19:59 +0000)
Closes: #1693
Approved by: mwleeds

src/libostree/ostree-repo-commit.c

index dd225e63c568970ff8325a6da83b4d2b5cc558d9..d464cd0adea71546a383dbf5837ee4e463660306 100644 (file)
@@ -2195,19 +2195,21 @@ ostree_repo_commit_transaction (OstreeRepo                  *self,
   if (self->txn.refs)
     if (!_ostree_repo_update_refs (self, self->txn.refs, cancellable, error))
       return FALSE;
-  g_clear_pointer (&self->txn.refs, g_hash_table_destroy);
 
   if (self->txn.collection_refs)
     if (!_ostree_repo_update_collection_refs (self, self->txn.collection_refs, cancellable, error))
       return FALSE;
-  g_clear_pointer (&self->txn.collection_refs, g_hash_table_destroy);
 
   /* Update the summary if auto-update-summary is set, because doing so was
    * delayed for each ref change during the transaction.
    */
-  if (!_ostree_repo_maybe_regenerate_summary (self, cancellable, error))
+  if ((self->txn.refs || self->txn.collection_refs) &&
+      !_ostree_repo_maybe_regenerate_summary (self, cancellable, error))
     return FALSE;
 
+  g_clear_pointer (&self->txn.refs, g_hash_table_destroy);
+  g_clear_pointer (&self->txn.collection_refs, g_hash_table_destroy);
+
   self->in_transaction = FALSE;
 
   if (!ot_ensure_unlinked_at (self->repo_dir_fd, "transaction", 0))